home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / Apple Game Sprockets / Examples / DroneZone / DZMenu.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-16  |  3.3 KB  |  173 lines  |  [TEXT/CWIE]

  1. /*
  2.  *    File:        DZMenu.c
  3.  *    Author:        Dan Venolia
  4.  *
  5.  *    Copyright © 1996 Apple Computer, Inc.
  6.  */
  7.  
  8. #include <Dialogs.h>
  9. #include <Menus.h>
  10.  
  11. #include "DZDisplay.h"
  12. #include "DZInput.h"
  13. #include "DZMain.h"
  14. #include "DZMenu.h"
  15. #include "DZGame.h"
  16. #include "DZResource.h"
  17. #include "DZSound.h"
  18.  
  19.  
  20. static void SelectAppleMenu(
  21.     short            inItem);
  22.  
  23. static void SelectFileMenu(
  24.     short            inItem);
  25.  
  26.  
  27. /* =============================================================================
  28.  *        Menu_Init (external)
  29.  *
  30.  *    Initializes our menus.
  31.  * ========================================================================== */
  32. void Menu_Init(
  33.     void)
  34. {
  35.     SetMenuBar(GetNewMBar(kMBarID_Main));
  36.     AddResMenu(GetMHandle(kMenuID_Apple), 'DRVR');
  37.     DrawMenuBar();
  38. }
  39.  
  40.  
  41. /* =============================================================================
  42.  *        Menu_Exit (external)
  43.  *
  44.  *    Cleans up.
  45.  * ========================================================================== */
  46. void Menu_Exit(
  47.     void)
  48. {
  49. }
  50.  
  51.  
  52. /* =============================================================================
  53.  *        Menu_Select (external)
  54.  *
  55.  *    Takes action on the given menu item.
  56.  * ========================================================================== */
  57. void Menu_Select(
  58.     short            inMenuID,
  59.     short            inItem)
  60. {
  61.     switch (inMenuID)
  62.     {
  63.         case kMenuID_Apple:
  64.             SelectAppleMenu(inItem);
  65.         break;
  66.         
  67.         case kMenuID_File:
  68.             SelectFileMenu(inItem);
  69.         break;
  70.     }
  71.  
  72.     HiliteMenu(0);
  73. }
  74.  
  75.  
  76. /* =============================================================================
  77.  *        SelectAppleMenu (internal)
  78.  *
  79.  *    Takes action on the given Apple menu item.
  80.  * ========================================================================== */
  81. void SelectAppleMenu(
  82.     short            inItem)
  83. {
  84.     switch (inItem)
  85.     {
  86.         case kAppleItem_About:
  87.             Display_Activate(false);
  88.             Alert(kAlrtID_About, NULL);
  89.             Display_Activate(true);
  90.         break;
  91.     }
  92. }
  93.  
  94.  
  95. /* =============================================================================
  96.  *        SelectFileMenu (internal)
  97.  *
  98.  *    Takes action on the given File menu item.
  99.  * ========================================================================== */
  100. void SelectFileMenu(
  101.     short            inItem)
  102. {
  103.     switch (inItem)
  104.     {
  105.         case kFileItem_StartGame:
  106.             switch (Game_GetState())
  107.             {
  108.                 case kGameState_Playing:
  109.                     // do nothing -- should be disabled
  110.                 break;
  111.                 
  112.                 case kGameState_Paused:
  113.                     Game_SetState(kGameState_Stopped);
  114.                     Game_SetState(kGameState_Playing);
  115.                 break;
  116.                 
  117.                 case kGameState_Stopped:
  118.                     Game_SetState(kGameState_Playing);
  119.                 break;
  120.             }
  121.         break;
  122.         
  123.         case kFileItem_EndGame:
  124.             switch (Game_GetState())
  125.             {
  126.                 case kGameState_Playing:
  127.                 case kGameState_Paused:
  128.                     Game_SetState(kGameState_Stopped);
  129.                 break;
  130.                 
  131.                 case kGameState_Stopped:
  132.                     // do nothing -- should be disabled
  133.                 break;
  134.             }
  135.         break;
  136.         
  137.         case kFileItem_PauseGame:
  138.             switch (Game_GetState())
  139.             {
  140.                 case kGameState_Playing:
  141.                     Game_SetState(kGameState_Paused);
  142.                 break;
  143.                 
  144.                 case kGameState_Paused:
  145.                     Game_SetState(kGameState_Playing);
  146.                 break;
  147.                 
  148.                 case kGameState_Stopped:
  149.                     // do nothing -- should be disabled
  150.                 break;
  151.             }
  152.         break;
  153.         
  154.         case kFileItem_ConfigInput:
  155.             Display_Activate(false);
  156.             Input_Configure();
  157.             Display_Activate(true);
  158.         break;
  159.         
  160.         case kFileItem_Config3DSound:
  161.             Display_Activate(false);
  162.             Sound_Configure();
  163.             Display_Activate(true);
  164.         break;
  165.         
  166.         case kFileItem_Quit:
  167.             Main_LastRoundup();
  168.         break;
  169.     }
  170. }
  171.  
  172.  
  173.